﻿<%@ Page Language="C#" AutoEventWireup="true" CodeFile="r_geral_informacoes_gerais_de_clientes.aspx.cs" Inherits="relatorios_r_geral_informacoes_gerais_de_clientes" %>

<%
    /*string Permissao_RelatoriosGerais = "" + this.Session["Permissao_RelatoriosGerais"];
    if (Permissao_RelatoriosGerais != "1")
    {
        this.Response.Redirect("../login.aspx");
    }*/
%>
<div style="background-color: White;">
    <%
        bool hasResults = false;     
        
        PL.DataBase.DAO.Instance.Setup(PL.DataBase.DatabaseTypes.SqlServer, PL.General.Instance.SACConnectionString);
        PL.DataBase.DAO.Instance.Connector.Open();
                
        string sql = "";
        sql += " SELECT        Sexo, COUNT(Sexo) AS Qtde ";
        sql += " FROM            main ";
        sql += " WHERE        (Ativo = 'True') ";
        sql += " GROUP BY Sexo ";
        int m = 0;
        int f = 0;
        int unknown = 0;        
        var reader = PL.DataBase.DAO.Instance.Connector.QueryWithReader(sql);
        while (reader.Read() == true)
        {
            hasResults = true;
            string gender = "" + reader["Sexo"];   
            gender = gender.ToLower();
            if (gender == "masculino" || gender == "m")
            {
                m += int.Parse("" + reader["Qtde"]);
            }
            else if (gender == "feminino" || gender == "f")
            {
                f += int.Parse("" + reader["Qtde"]);
            }
            else
            {
                unknown += int.Parse("" + reader["Qtde"]);
            }
        }
        reader.Close();
    %>

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", { packages: ["corechart"] });
        google.setOnLoadCallback(drawChart);
        function drawChart() {

          var data = google.visualization.arrayToDataTable([
          ['Sexo', 'Quantidade'],
          ['Masculino', <%= m %>],
          ['Feminino', <%= f %>],
          ['Desconhecido', <%= unknown %>]          
        ]);

            <%
                if (hasResults == true)
                {
            %>
                    var options = {
                        title: 'Gênero do clientes'
                    };
                    var chart = new google.visualization.PieChart(document.getElementById('genero_dos_clientes'));
                    chart.draw(data, options);
            <%
                }
            %>
        }
    </script>
    <div id="genero_dos_clientes" style="width: 900px; height: 500px;">
        <center>nenhum dado encontrado</center>
    </div>
    
    <br />

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", { packages: ["corechart"] });
        google.setOnLoadCallback(drawChart);
        function drawChart() {

          var data = google.visualization.arrayToDataTable([
          ['Estado Civil', 'Quantidade'],
        <%
            hasResults = false;
            sql = "";
            sql += " SELECT        EstadoCivil, COUNT(EstadoCivil) AS Qtde ";
            sql += " FROM            main ";
            sql += " WHERE        (Ativo = 'True') AND (EstadoCivil <> 'NULL') ";
            sql += " GROUP BY EstadoCivil ";
    
            reader = PL.DataBase.DAO.Instance.Connector.QueryWithReader(sql);
            while (reader.Read() == true)
            {
                hasResults = true;
                this.Response.Write("['" + reader["EstadoCivil"] + "', " + reader["Qtde"] + "],");
            }
            reader.Close();        
        %>
        ]);
            <%
                if (hasResults == true)
                {
            %>
                    var options = {
                        title: 'Estado civil do clientes'
                    };
                    var chart = new google.visualization.PieChart(document.getElementById('estado_civil_dos_clientes'));
                    chart.draw(data, options);
            <%
                }
            %>
        }
    </script>

    <div id="estado_civil_dos_clientes" style="width: 900px; height: 500px;">
        <center>nenhum dado encontrado</center>
    </div>

    <br />    

    <%
        hasResults = false;

        int faixa0_19 = 0;
        int faixa20_29 = 0;
        int faixa30_39 = 0;
        int faixa40_49 = 0;
        int faixa50_59 = 0;
        int faixa60mais = 0;
        sql = "";
        sql += " SELECT        DATEDIFF(yy, DTNascimento, GETDATE()) AS Idade, COUNT(DATEDIFF(yy, DTNascimento, GETDATE())) AS Qtde ";
        sql += " FROM            main ";
        sql += " WHERE        (Ativo = 'True') ";
        sql += " GROUP BY DATEDIFF(yy, DTNascimento, GETDATE()) ";
        sql += " ORDER BY Idade ";
        reader = PL.DataBase.DAO.Instance.Connector.QueryWithReader(sql);
        while (reader.Read() == true)
        {
            hasResults = true;
            string ida = "" + reader["Idade"];
            if (string.IsNullOrEmpty(ida) == true)
            {
                continue;
            }
            
            int idade = int.Parse("" + reader["Idade"]);
            int qtd = int.Parse("" + reader["Qtde"]);
            if (idade < 20)
            {
                faixa0_19 += qtd;
            }
            else if (idade < 30)
            {
                faixa20_29 += qtd;
            }
            else if (idade < 40)
            {
                faixa30_39 += qtd;
            }
            else if (idade < 50)
            {
                faixa40_49 += qtd;
            }
            else if (idade < 60)
            {
                faixa50_59 += qtd;
            }
            else
            {
                faixa60mais += qtd;
            }                             
        }
        reader.Close();                     
    %>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", { packages: ["corechart"] });
        google.setOnLoadCallback(drawChart);
        function drawChart() {

          var data = google.visualization.arrayToDataTable([
          ['Faixa de idade', 'Quantidade'],
          ['0-20 anos', <%= faixa0_19 %>],
          ['20-29 anos', <%= faixa20_29 %>],
          ['30-39 anos', <%= faixa30_39 %>],
          ['40-49 anos', <%= faixa40_49 %>],
          ['50-59 anos', <%= faixa50_59 %>],
          ['60 anos ou mais', <%= faixa60mais %>],
        ]);
            <%
                if (hasResults == true)
                {
            %>
                    var options = {
                        title: 'Faixa etária dos clientes'
                    };
                    var chart = new google.visualization.PieChart(document.getElementById('idade_dos_clientes'));
                    chart.draw(data, options);
            <%
                }
            %>
        }
    </script>

    <div id="idade_dos_clientes" style="width: 900px; height: 500px;">
        <center>nenhum dado encontrado</center>
    </div>
    
    <br />

    <%
        hasResults = false;
        string semSite = "0";
        string comSite = "0";
        
        sql = "";
        sql += " SELECT        COUNT(Site) AS Qtde, Site ";
        sql += " FROM            main ";
        sql += " WHERE        (Ativo = 'True') AND (Site = 'http://' OR ";
        sql += " Site = 'NULL') ";
        sql += " GROUP BY Site ";           
        reader = PL.DataBase.DAO.Instance.Connector.QueryWithReader(sql);
        if (reader.Read() == true)
        {
            hasResults = true;
            semSite = "" + reader["Qtde"];
        }
        reader.Close();
        
        sql = "";
        sql += " SELECT        COUNT(Site) AS Qtde ";
        sql += " FROM            main ";
        sql += " WHERE        (Ativo = 'True') AND (Site <> 'http://' AND ";
        sql += " Site <> 'NULL') ";              
        reader = PL.DataBase.DAO.Instance.Connector.QueryWithReader(sql);
        if (reader.Read() == true)
        {
            hasResults = true;
            comSite = "" + reader["Qtde"];
        }
        reader.Close();              
    %>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", { packages: ["corechart"] });
        google.setOnLoadCallback(drawChart);
        function drawChart() {

          var data = google.visualization.arrayToDataTable([
          ['Tem Site', 'Quantidade'],
          ['Não possuem site', <%= semSite %>],
          ['Possuem site', <%= comSite %>]   
        ]);
            <%
                if (hasResults == true)
                {
            %>
                    var options = {
                        title: 'Sites dos clientes'
                    };
                    var chart = new google.visualization.PieChart(document.getElementById('sites_clientes'));
                    chart.draw(data, options);
            <%
                }
            %>
        }
    </script>

    <div id="sites_clientes" style="width: 900px; height: 500px;">
        <center>nenhum dado encontrado</center>
    </div>
    <%
        PL.DataBase.DAO.Instance.Connector.Close();
    %>
</div>